home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- NOTE: uses 'small' and 'big' names for fishes
- local function canReport()
- --TODO: don't talk when room is solved
- return no_dialog() and small:isAlive() and big:isAlive()
- end
- -- -----------------------------------------------------------------
- local wereAtBorder = {}
- local function markAtBorder(unit, value)
- wereAtBorder[unit] = value
- end
- local function wasAtBorder(unit)
- return wereAtBorder[unit]
- end
- -- -----------------------------------------------------------------
- -- NOTE: uses 'small' and 'big' names for fishes
- local function selectMessage(unit, n)
- if unit == small then
- addm(0, 'cil-m-hlaska'..n)
- elseif unit == big then
- addv(0, 'cil-v-hlaska'..n)
- end
- end
- -- -----------------------------------------------------------------
- local reportLimit = 1
- local reportRate = 0
- local lastMessage = random(4)
- local function reportBorder(unit)
- local result = false
- reportRate = reportRate + 1
- if reportRate == reportLimit then
- reportLimit = reportLimit + 1
- reportRate = random(reportLimit)
- local message = random(3)
- if message == lastMessage then
- message = 3
- end
- lastMessage = message
- selectMessage(unit, message)
- result = true
- end
- return result
- end
-
- -- -----------------------------------------------------------------
- local loaded = false
- function stdBorderReportLoad()
- if not loaded then
- loaded = true
- dialogLoad("script/share/border_", "sound/share/border/")
- end
- end
- -- -----------------------------------------------------------------
- function stdBorderReport()
- stdBorderReportLoad()
- local reported = false
- local oneTry = true
- if canReport() then
- for index, unit in pairs(getUnitTable()) do
- if unit:isAtBorder() then
- if oneTry and not wasAtBorder(unit) then
- oneTry = false
- reported = reportBorder(unit)
- end
- markAtBorder(unit, true)
- else
- markAtBorder(unit, false)
- end
- end
- end
- return reported
- end
-
-